

#region --Django

@介绍
# Django是一个开放源代码的Web应用框架，由Python写成。
# Django遵守BSD版权，初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
# Django采用了MVC的软件设计模式，即模型M，视图V和控制器C。
# Django是重量级选手中最有代表性的一位。

@组织框架
# project 文件夹 》同项目名，放置项目相关的基础文件
# templates 文件夹 》放置网页模板文件
# static 文件夹  放置一些静态从css,javascrips，图片，视频资源等文件
# manage.py >> 提供命令行支持
# urls.py >> 网址入口，关联到对应的views.py中的一个函数（或者generic类），访问网址就对应一个函数。
# views.py >>处理用户发出的请求，从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容，
#             比如登陆后的用户名，用户请求的数据，输出到网页。
# models.py >> 与数据库操作相关，存入或读取数据时用到这个，当然用不到数据库的时候 你可以不使用。
# forms.py >>表单，用户在浏览器上输入数据提交，对数据的验证工作以及输入框的生成等工作，当然你也可以不使用。
# admin.py >>后台，可以用很少量的代码就拥有一个强大的后台。
# settings.py >>Django 的设置，配置文件，比如 DEBUG 的开关，静态文件的位置等。
# views.py >> 中的函数渲染templates中的Html模板，得到动态内容的网页，当然可以用缓存来提高速度。

@操作技巧
# 视图函数绑定方式 : url 方式,参数不全时可能引发冲突；#path 方式,精准定位
# name 可以用于在 templates, models, views ……中得到对应的网址，相当于“给网址取了个名字”

# 1 双下划线"__" 在Django QuerySet API中有特殊含义,
# 用于关系，包含，不区分大小写，以什么开头或结尾， 日期的大于小于，正则等

# 2 执行数据迁移时若提示"NO change detected"，那么就删掉对应app文件夹下的migrations文件夹内的文件，
#   重新更新数据结构，在进行数据迁移
# 3 如果更新或者新增了一个类，就要重新更新数据结构和进行数据迁移
# 4 django 2.2版本需要引入 mysqlclient 1.3.31以上版本的 mysqldb库，不支持pymysql
# 5 当项目使用到模板文件时， 应在setting文件中的templates项中添加 模板文件路径，一般BASE_DIR就够用了
# 6 项目中新建了app后，需要在setting文件内的INSTALL_APPS 中标记, 否则django 就不能自动找到app中的模板文件
# 7 QuerySet查询集不会永远缓存它们的结果。当只对查询集的部分进行求值时会检查缓存， 如果这个部分不在缓存中，
#     那么接下来查询返回的记录都将不会被缓存。所以，这意味着使用切片或索引来限制查询集将不会填充缓存。
#功能强大，组件多，系统耦合度高而不易替换内置功能

# python中一个神奇的变量 __file__ 这个变量可以获取到当前文件（包含这个代码的文件）的路径。
# os.path.dirname(__file__) 得到文件所在目录

@数据导入导出
# 将django的数据导出到josn文件
python manage.py dumpdata app_name > app_name_dump.json
# 将外部json数据导入django数据库
python manage.py loaddata app_dump.json
#以根据自己的models,创建这样的json文件
[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }]

# 如果要入的文件较多，也可以在setting.py 中设置一个FIXTURE_DIRS=['path']，指示导入来源
#endregion

#region --Tornado
#框架+web服务器，运行速度块
#endregion

#region --Bottle
#微框架
#endregion